<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>keysstore: XML Security Library Reference Manual</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="index.html" title="XML Security Library Reference Manual">
<link rel="up" href="xmlsec-mscrypto-ref.html" title="XML Security Library for Microsoft Crypto API Reference.">
<link rel="prev" href="xmlsec-mscrypto-crypto.html" title="crypto">
<link rel="next" href="xmlsec-mscrypto-x509.html" title="x509">
<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
<style type="text/css">
table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
    width: 20em;
}
.synopsis, .classsynopsis {
    background: #eeeeee;
    border: solid 1px #aaaaaa;
}
.programlisting {
    background: #eeeeee;
    border: solid 1px #000000;
}
.navigation {
    background: #eeeeee;
    border: solid 1px #000000;
}
.navigation a {
    color: initial;
}
.navigation a:visited {
    color: initial;
}
</style>
<style type="text/css">
table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
    width: 20em;
}
.synopsis, .classsynopsis {
    background: #eeeeee;
    border: solid 1px #aaaaaa;
}
.programlisting {
    background: #eeeeee;
    border: solid 1px #000000;
}
.navigation {
    background: #eeeeee;
    border: solid 1px #000000;
}
.navigation a {
    color: initial;
}
.navigation a:visited {
    color: initial;
}
</style>
</head>
<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
<li><a href="../index.html">Home</a></li>
<li><a href="../download.html">Download</a></li>
<li><a href="../news.html">News</a></li>
<li><a href="../documentation.html">Documentation</a></li>
<ul>
<li><a href="../faq.html">FAQ</a></li>
<li><a href="../api/xmlsec-notes.html">Tutorial</a></li>
<li><a href="../api/xmlsec-reference.html">API reference</a></li>
<li><a href="../api/xmlsec-examples.html">Examples</a></li>
</ul>
<li><a href="../xmldsig.html">XML Digital Signature</a></li>
<ul><li><a href="http://www.aleksey.com/xmlsec/xmldsig-verifier.html">Online Verifier</a></li></ul>
<li><a href="../xmlenc.html">XML Encryption</a></li>
<li><a href="../c14n.html">XML Canonicalization</a></li>
<li><a href="../bugs.html">Reporting Bugs</a></li>
<li><a href="http://www.aleksey.com/pipermail/xmlsec">Mailing list</a></li>
<li><a href="../related.html">Related</a></li>
<li><a href="../authors.html">Authors</a></li>
</ul>
<table width="100%">
<tr>
<td width="15"></td>
<td><a href="http://xmlsoft.org/"><img src="../images/libxml2-logo.png" alt="LibXML2" border="0"></a></td>
</tr>
<tr>
<td width="15"></td>
<td><a href="http://xmlsoft.org/XSLT"><img src="../images/libxslt-logo.png" alt="LibXSLT" border="0"></a></td>
</tr>
<tr>
<td width="15"></td>
<td><a href="http://www.openssl.org/"><img src="../images/openssl-logo.png" alt="OpenSSL" border="0"></a></td>
</tr>
<!--Links - start--><!--Links - end-->
</table>
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts">
<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
                  <a href="#xmlsec-mscrypto-keysstore.description" class="shortcut">Description</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="xmlsec-mscrypto-ref.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="xmlsec-mscrypto-crypto.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="xmlsec-mscrypto-x509.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="refentry">
<a name="xmlsec-mscrypto-keysstore"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="xmlsec-mscrypto-keysstore.top_of_page"></a>keysstore</span></h2>
<p>keysstore &#8212; Keys store implementation for Microsoft Crypto API.</p>
</td>
<td class="gallery_image" valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
<a name="xmlsec-mscrypto-keysstore.stability-level"></a><h2>Stability Level</h2>
<a href="http://foldoc.org/Private"><span class="acronym">Private</span></a>, unless otherwise indicated
</div>
<div class="refsect1">
<a name="xmlsec-mscrypto-keysstore.functions"></a><h2>Functions</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col>
<col>
</colgroup>
<tbody>
<tr>
<td class="function_type">
<font><span class="returnvalue">xmlSecKeyStoreId</span></font>
</td>
<td class="function_name">
<a class="link" href="xmlsec-mscrypto-keysstore.html#xmlSecMSCryptoKeysStoreGetKlass" title="xmlSecMSCryptoKeysStoreGetKlass ()">xmlSecMSCryptoKeysStoreGetKlass</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<font><span class="returnvalue">int</span></font>
</td>
<td class="function_name">
<a class="link" href="xmlsec-mscrypto-keysstore.html#xmlSecMSCryptoKeysStoreAdoptKey" title="xmlSecMSCryptoKeysStoreAdoptKey ()">xmlSecMSCryptoKeysStoreAdoptKey</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<font><span class="returnvalue">int</span></font>
</td>
<td class="function_name">
<a class="link" href="xmlsec-mscrypto-keysstore.html#xmlSecMSCryptoKeysStoreLoad" title="xmlSecMSCryptoKeysStoreLoad ()">xmlSecMSCryptoKeysStoreLoad</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<font><span class="returnvalue">int</span></font>
</td>
<td class="function_name">
<a class="link" href="xmlsec-mscrypto-keysstore.html#xmlSecMSCryptoKeysStoreSave" title="xmlSecMSCryptoKeysStoreSave ()">xmlSecMSCryptoKeysStoreSave</a> <span class="c_punctuation">()</span>
</td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="xmlsec-mscrypto-keysstore.other"></a><h2>Types and Values</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col>
<col>
</colgroup>
<tbody><tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="xmlsec-mscrypto-keysstore.html#xmlSecMSCryptoKeysStoreId" title="xmlSecMSCryptoKeysStoreId">xmlSecMSCryptoKeysStoreId</a></td>
</tr></tbody>
</table></div>
</div>
<div class="refsect1">
<a name="xmlsec-mscrypto-keysstore.description"></a><h2>Description</h2>
<p>MSCrypto keys store that uses Simple Keys Store under the hood. Uses the
MS Certificate store as a backing store for the finding keys, but the
MS Certificate store not written to by the keys store.
So, if store-&gt;findkey is done and the key is not found in the simple
keys store, the MS Certificate store is looked up.
Thus, the MS Certificate store can be used to pre-load keys and becomes
an alternate source of keys for xmlsec.</p>
</div>
<div class="refsect1">
<a name="xmlsec-mscrypto-keysstore.functions_details"></a><h2>Functions</h2>
<div class="refsect2">
<a name="xmlSecMSCryptoKeysStoreGetKlass"></a><h3>xmlSecMSCryptoKeysStoreGetKlass ()</h3>
<pre class="programlisting"><font><span class="returnvalue">xmlSecKeyStoreId</span></font>
xmlSecMSCryptoKeysStoreGetKlass (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<p>The MSCrypto list based keys store klass.</p>
<div class="refsect3">
<a name="xmlSecMSCryptoKeysStoreGetKlass.returns"></a><h4>Returns</h4>
<p> MSCrypto list based keys store klass.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="xmlSecMSCryptoKeysStoreAdoptKey"></a><h3>xmlSecMSCryptoKeysStoreAdoptKey ()</h3>
<pre class="programlisting"><font><span class="returnvalue">int</span></font>
xmlSecMSCryptoKeysStoreAdoptKey (<em class="parameter"><code><a class="link" href="xmlsec-keysmngr.html#xmlSecKeyStore" title="struct xmlSecKeyStore"><span class="type">xmlSecKeyStorePtr</span></a> store</code></em>,
                                 <em class="parameter"><code><a class="link" href="xmlsec-keys.html#xmlSecKey" title="struct xmlSecKey"><span class="type">xmlSecKeyPtr</span></a> key</code></em>);</pre>
<p>Adds <em class="parameter"><code>key</code></em>
 to the <em class="parameter"><code>store</code></em>
.</p>
<div class="refsect3">
<a name="xmlSecMSCryptoKeysStoreAdoptKey.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col>
<col>
<col>
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>store</p></td>
<td class="parameter_description"><p>the pointer to MSCrypto keys store.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>key</p></td>
<td class="parameter_description"><p>the pointer to key.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="xmlSecMSCryptoKeysStoreAdoptKey.returns"></a><h4>Returns</h4>
<p> 0 on success or a negative value if an error occurs.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="xmlSecMSCryptoKeysStoreLoad"></a><h3>xmlSecMSCryptoKeysStoreLoad ()</h3>
<pre class="programlisting"><font><span class="returnvalue">int</span></font>
xmlSecMSCryptoKeysStoreLoad (<em class="parameter"><code><a class="link" href="xmlsec-keysmngr.html#xmlSecKeyStore" title="struct xmlSecKeyStore"><span class="type">xmlSecKeyStorePtr</span></a> store</code></em>,
                             <em class="parameter"><code>const <font><span class="type">char</span></font> *uri</code></em>,
                             <em class="parameter"><code><a class="link" href="xmlsec-keysmngr.html#xmlSecKeysMngr" title="struct xmlSecKeysMngr"><span class="type">xmlSecKeysMngrPtr</span></a> keysMngr</code></em>);</pre>
<p>Reads keys from an XML file.</p>
<div class="refsect3">
<a name="xmlSecMSCryptoKeysStoreLoad.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col>
<col>
<col>
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>store</p></td>
<td class="parameter_description"><p>the pointer to MSCrypto keys store.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>uri</p></td>
<td class="parameter_description"><p>the filename.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>keysMngr</p></td>
<td class="parameter_description"><p>the pointer to associated keys manager.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="xmlSecMSCryptoKeysStoreLoad.returns"></a><h4>Returns</h4>
<p> 0 on success or a negative value if an error occurs.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="xmlSecMSCryptoKeysStoreSave"></a><h3>xmlSecMSCryptoKeysStoreSave ()</h3>
<pre class="programlisting"><font><span class="returnvalue">int</span></font>
xmlSecMSCryptoKeysStoreSave (<em class="parameter"><code><a class="link" href="xmlsec-keysmngr.html#xmlSecKeyStore" title="struct xmlSecKeyStore"><span class="type">xmlSecKeyStorePtr</span></a> store</code></em>,
                             <em class="parameter"><code>const <font><span class="type">char</span></font> *filename</code></em>,
                             <em class="parameter"><code><a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataType" title="xmlSecKeyDataType"><span class="type">xmlSecKeyDataType</span></a> type</code></em>);</pre>
<p>Writes keys from <em class="parameter"><code>store</code></em>
 to an XML file.</p>
<div class="refsect3">
<a name="xmlSecMSCryptoKeysStoreSave.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col>
<col>
<col>
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>store</p></td>
<td class="parameter_description"><p>the pointer to MSCrypto keys store.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>filename</p></td>
<td class="parameter_description"><p>the filename.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>type</p></td>
<td class="parameter_description"><p>the saved keys type (public, private, ...).</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="xmlSecMSCryptoKeysStoreSave.returns"></a><h4>Returns</h4>
<p> 0 on success or a negative value if an error occurs.</p>
</div>
</div>
</div>
<div class="refsect1">
<a name="xmlsec-mscrypto-keysstore.other_details"></a><h2>Types and Values</h2>
<div class="refsect2">
<a name="xmlSecMSCryptoKeysStoreId"></a><h3>xmlSecMSCryptoKeysStoreId</h3>
<pre class="programlisting">#define xmlSecMSCryptoKeysStoreId       xmlSecMSCryptoKeysStoreGetKlass()
</pre>
<p>A MSCrypto keys store klass id.</p>
</div>
</div>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.27</div>
</td></tr></table></td>
</tr></table></body>
</html>
